package com.heng.groupchat.common;

/**
 * 返回工具类
 *
 * @author faye
 */
public class ResultUtils {

    /**
     * 成功
     * @param data 返回数据
     * @return 响应类
     * @param <T> 泛型
     */
    public static <T> BaseResponse<T> success(T data) {
        return new BaseResponse<>(
                StatusCode.SUCCESS.getCode(),
                data,
                StatusCode.SUCCESS.getMessage()
        );
    }

    /**
     * 失败
     *
     * @param code 错误码
     * @param message 信息
     * @return 响应类
     */
    public static BaseResponse<?> error(int code, String message) {
        return new BaseResponse<>(code, null, message);
    }

    /**
     * 失败
     *
     * @param errorCode 错误状态码
     * @return 响应类
     */
    public static BaseResponse<?> error(StatusCode errorCode) {
        return new BaseResponse<>(
                errorCode.getCode(),
                null,
                errorCode.getMessage()
        );
    }

    /**
     * 失败
     *
     * @param errorCode 错误状态码
     * @param message 信息
     * @return 响应类
     */
    public static BaseResponse<?> error(StatusCode errorCode, String message) {
        return new BaseResponse<>(errorCode.getCode(), null, message);
    }
}